package net.qiyuesuo.service;

import java.io.InputStream;
import java.nio.file.Path;

import net.qiyuesuo.pojo.FileMeta;

/**
 * 实现对文件存储/删除/读取操作
 *
 */
public interface StorageService {
	
	/**
	 * 存储inputStream 类型文件，返回文件key
	 * @param input
	 * @param size
	 * @return
	 */
	FileMeta storageFile(InputStream input,long size);
	
	/**
	 * 存储byte[] 类型文件，返回文件key
	 * @param bytes
	 * @return
	 */
	FileMeta storageFile(byte [] bytes);
	
	
	/**
	 * 存储files 类型文件，返回文件key
	 * @param files
	 * @return
	 */
	FileMeta storageFile(Path path);
	
	/**
	 * 根据文件key，获取文件Path
	 * @param fileKey
	 * @return
	 */
	Path getFileByKey(String fileKey);
	
	/**
	 * 根据文件key 删除文件
	 * @param uuid
	 */
	void deleteFile(String uuid);
	
	
}
